In order to improve the quality of their software, software vendors collect error reports from their customers. These error reports may be automatically generated by the software when an error occurs and the user may then be given the option to send the report to the vendor or not. In order for these reports to be of most use to the vendors in analyzing and fixing a bug, the reports should contain the inputs which made the software fail. However, vendors rarely include these inputs in an error report because they may contain private user data. Instead, error reports usually contain dumps of small regions of memory, such as the memory in the stacks of running threads. However, in many cases, these dumps are not sufficient to enable the vendor to reproduce the bug and may still contain private information.
The embodiments described below are not limited to implementations which solve any or all of the disadvantages of known error reports and error reporting systems.